#include <stdio.h>
#include <string.h>

union Data
{
    int i;
    float f;
    char str[20];
};

int main()
{
    union Data data;

    data.i = 10;
    data.f = 20.0f;
    strcpy(data.str, "Ccc");

    // 对 union 多次设值，导致 union的i和f成员的值被破坏了，因为分配给变量的最终值占用了内存位置

    printf("data.i : %d\n", data.i);
    printf("data.f : %f\n", data.f);
    printf("data.str : %s\n\n", data.str);

    /////////////////////////////////

    data.i = 10;
    printf("data.i : %d\n", data.i);

    data.f = 220.5;
    printf("data.f : %f\n", data.f);

    strcpy(data.str, "C Programming");
    printf("data.str : %s\n", data.str);

    return 0;
}